1 package net.sourceforge.simplegamenet.connectaline;
2
3 import java.awt.*;
4 import net.sourceforge.simplegamenet.specs.gui.GameSettingsPanel;
5 import net.sourceforge.simplegamenet.specs.to.GameSettings;
6 import net.sourceforge.simplegamenet.specs.to.PlayerSettings;
7 import net.sourceforge.simplegamenet.specs.tools.ColoredPlayerSettings;
8
9
10 public class CALSettings extends GameSettings implements CALPlayStyle {
11
12 public static final Color[] PLAYER_COLORS = {
13 new Color(0xFE, 0x40, 0x42),
14 new Color(0xFF, 0xFE, 0x49),
15 new Color(0x40, 0xFF, 0x00),
16 new Color(0xFF, 0x00, 0xFF),
17 new Color(0x41, 0xFF, 0xFF),
18 new Color(0x40, 0x40, 0x40),
19 new Color(0xFF, 0xB1, 0x66),
20 new Color(0xB2, 0xB2, 0xB2)
21 };
22
23
24 private int maxNumberOfPlayer = 2;
25 private int maxNumberOfcon = 8;
26 private int lengthOfALine = 4;
27 private int numberOfColumns = 7;
28 private int numberOfRows = 6;
29 private int playStyle = 1;
30
31 public CALSettings() {
32 }
33
34 public CALSettings(int maxNumberOfPlayer, int maxNumberOfcon, int lengthOfALine,
35 int numberOfColumns, int numberOfRows, int playStyle) {
36 this.maxNumberOfPlayer = maxNumberOfPlayer;
37 this.maxNumberOfcon = maxNumberOfcon;
38 this.lengthOfALine = lengthOfALine;
39 this.numberOfColumns = numberOfColumns;
40 this.numberOfRows = numberOfRows;
41 this.playStyle = playStyle;
42 }
43
44 public GameSettingsPanel createGameSettingsPanel() {
45 return new CALSettingsPanel(maxNumberOfPlayer, maxNumberOfcon, lengthOfALine,
46 numberOfColumns, numberOfRows, playStyle);
47 }
48
49 public GameSettings createChangedGameSettings(GameSettingsPanel gameSettingsPanel) {
50 CALSettingsPanel cALSettingsPanel = (CALSettingsPanel) gameSettingsPanel;
51 return new CALSettings(cALSettingsPanel.getMaxNumberOfPlayer(),
52 cALSettingsPanel.getMaxNumberOfcon(), cALSettingsPanel.getLengthOfALine(),
53 cALSettingsPanel.getNumberOfColumns(), cALSettingsPanel.getNumberOfRows(),
54 cALSettingsPanel.getPlayStyle());
55 }
56
57 public boolean isCreateDefaultPlayerSettingsAllowed(int playerType) {
58 if (engine.getPlayerSettingsMap().getConnectionsAmount() >= maxNumberOfcon) {
59 return false;
60 }
61 return true;
62 }
63
64 public PlayerSettings createDefaultPlayerSettings(Integer playerID, int playerType,
65 String nickname) {
66 int playingState = engine.isGamePlaying() ? PlayerSettings.OBSERVING
67 : PlayerSettings.PARTICIPATING;
68 if (engine.getPlayerSettingsMap().getParticipantsAmount() >= maxNumberOfPlayer) {
69 playingState = PlayerSettings.OBSERVING;
70 }
71 return new ColoredPlayerSettings(engine, playerID, playerType, nickname,
72 playingState, PLAYER_COLORS);
73 }
74
75 public boolean isChangePlayerSettingsAllowed(PlayerSettings currentPlayerSettings,
76 PlayerSettings changedPlayerSettings) {
77 if (currentPlayerSettings.getPlayingState() == PlayerSettings.OBSERVING
78 && changedPlayerSettings.getPlayingState() == PlayerSettings.PARTICIPATING
79 && engine.getPlayerSettingsMap().getParticipantsAmount()
80 >= maxNumberOfPlayer) {
81 return false;
82 } else {
83 return true;
84 }
85 }
86
87 public boolean isStartGameAllowed() {
88 if (engine.getPlayerSettingsMap().getParticipantsAmount() >= 2) {
89 return true;
90 } else {
91 return false;
92 }
93 }
94
95 public int getMaxNumberOfPlayer() {
96 return maxNumberOfPlayer;
97 }
98
99 public void setMaxNumberOfPlayer(int maxNumberOfPlayer) {
100 this.maxNumberOfPlayer = maxNumberOfPlayer;
101 }
102
103 public int getMaxNumberOfcon() {
104 return maxNumberOfcon;
105 }
106
107 public void setMaxNumberOfcon(int maxNumberOfcon) {
108 this.maxNumberOfcon = maxNumberOfcon;
109 }
110
111 public int getLengthOfALine() {
112 return lengthOfALine;
113 }
114
115 public void setLengthOfALine(int lengthOfALine) {
116 this.lengthOfALine = lengthOfALine;
117 }
118
119 public int getNumberOfColumns() {
120 return numberOfColumns;
121 }
122
123 public void setNumberOfColumns(int numberOfColumns) {
124 this.numberOfColumns = numberOfColumns;
125 }
126
127 public int getNumberOfRows() {
128 return numberOfRows;
129 }
130
131 public void setNumberOfRows(int numberOfRows) {
132 this.numberOfRows = numberOfRows;
133 }
134
135 public int getPlayStyle() {
136 return playStyle;
137 }
138
139 public void setPlayStyle(int playStyle) {
140 this.playStyle = playStyle;
141 }
142
143 }